package proccrontrol

import (
	"communication-system/common/messages"
	"communication-system/server/model"
	"fmt"
)

//该go文件主要存储客户端用户在线状态信息
//定义一个客户端维护各自好友的map列表 默认是所有人
var onlineUsers map[int]*model.User = make(map[int]*model.User, 10)

//在客户端显示当前在线的用户
func outPutOnlineUsers() {
	//遍历onlineUsers
	for id, _ := range onlineUsers {
		fmt.Println("当前在线的好友列表:",id)
	}
}
//定义一个方法处理服务器端返回来的消息体：notifyUserStatusMes
func updateUserStatus(notifyUserStatusMes *messages.NotifyUserStatusMes)  {
	user,ok :=onlineUsers[notifyUserStatusMes.UserId]
	if !ok{
		fmt.Println("第一次登录直接添加到用户列表")
		user =&model.User{
			
			UserId: notifyUserStatusMes.UserId,
			UserStatus: notifyUserStatusMes.UserStatus,
		}
	}
	//如果用户列表中已经存在则直接修改状态即可
	user.UserStatus=notifyUserStatusMes.UserStatus
	onlineUsers[notifyUserStatusMes.UserId]=user
	fmt.Println("打印好友列表信息....")
	outPutOnlineUsers()
	
}
